JavaFX-এ Node, Parent, এবং Control হল প্রধান ক্লাস যা JavaFX ইউজার ইন্টারফেসের গঠন এবং আচরণ নির্ধারণ করে। এগুলি JavaFX-এর গুরুত্বপূর্ণ অংশ, এবং এগুলি ব্যবহার করে গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) তৈরি করা হয়। এখানে এই তিনটি ধারণার বিস্তারিত ব্যাখ্যা দেওয়া হলো:
1. Node
JavaFX-এ Node হল গ্রাফিক্যাল উপাদান যা স্ক্রীনে প্রদর্শিত হয়। এটি JavaFX-এর একটি মৌলিক ক্লাস এবং সকল UI উপাদান (যেমন: বোতাম, টেক্সট, ছবি, ফর্ম, শেপ) এর ভিত্তি। Node-এর মাধ্যমে দৃশ্যমান উপাদানগুলি (UI components) তৈরি ও পরিচালনা করা হয়।
Node-এর কিছু সাধারণ বৈশিষ্ট্য:
- Positioning: Node-এর স্থান নির্ধারণ করা যায় (যেমন
x,yপজিশন)। - Size: Node-এর আকার নির্ধারণ করা যায় (যেমন
width,height)। - Transformations: Node-এ বিভিন্ন রূপান্তর (যেমন: স্কেল, রোটেশন) প্রয়োগ করা যায়।
- Style: CSS দিয়ে Node-এর স্টাইল কাস্টমাইজ করা যায়।
Node-এর কিছু সাধারণ সাবক্লাস:
- Shape: বিভিন্ন শেপ (যেমন: Circle, Rectangle, Line) তৈরি করতে ব্যবহৃত হয়।
- Text: টেক্সট উপাদান প্রদর্শন করতে ব্যবহৃত হয়।
- ImageView: চিত্র (image) প্রদর্শন করতে ব্যবহৃত হয়।
- Group: একাধিক Node একত্রিত করে একটি যৌথ গ্রুপ তৈরি করা হয়।
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.Node;
import javafx.scene.layout.StackPane;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
public class NodeExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি Circle তৈরি করা হচ্ছে যা Node এর একটি উদাহরণ
Circle circle = new Circle(50);
circle.setStyle("-fx-fill: blue;");
StackPane root = new StackPane();
root.getChildren().add(circle); // Circle Node-টি StackPane এর মধ্যে রাখা হচ্ছে
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Node Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
2. Parent
Parent হল Node ক্লাসের একটি সাবক্লাস, যার মাধ্যমে অন্য Node-এর জন্য প্যারেন্ট কন্টেইনার (যেমন: Layouts) তৈরি করা যায়। এটি অন্যান্য Node-কে ধারণ করতে সক্ষম এবং UI উপাদানগুলির গঠন তৈরি করতে ব্যবহৃত হয়। এর মধ্যে অন্যান্য Node-কে যুক্ত করা যায়, যেমন HBox, VBox, GridPane, StackPane ইত্যাদি।
Parent-এর কিছু বৈশিষ্ট্য:
- Parent ক্লাসের মাধ্যমে আমরা একাধিক child Node পরিচালনা করতে পারি।
- Parent হল সাধারণত সেই কন্টেইনার যেটি একাধিক Node ধারণ করে এবং তাদের সঠিকভাবে সজ্জিত (arrange) করার জন্য ব্যবহৃত হয়।
Parent ক্লাসের কিছু সাধারণ সাবক্লাস:
- Group: একাধিক Node-কে একটি গ্রুপ হিসেবে দেখানোর জন্য ব্যবহৃত হয়।
- StackPane: Node-গুলোকে স্তরে স্তরে (stacked) সাজানোর জন্য ব্যবহৃত হয়।
- HBox, VBox: Node-গুলোকে অনুভূমিক (horizontal) অথবা উল্লম্ব (vertical)ভাবে সাজানোর জন্য ব্যবহৃত হয়।
- GridPane: একটি টেবিলের মতো Node গঠন করার জন্য ব্যবহৃত হয়, যেখানে বিভিন্ন গ্রিডের মধ্যে Node রাখা যায়।
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ParentExample extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Click Me");
// StackPane একটি Parent, যেটি Button কে ধারণ করছে
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Parent Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
3. Control
Control হল Parent ক্লাসের একটি সাবক্লাস এবং এটি সাধারণত UI উপাদানগুলি (যেমন: Buttons, Labels, Text Fields, Sliders, ComboBoxes ইত্যাদি) এর জন্য ব্যবহৃত হয়। এগুলি interactive UI components হিসেবে কাজ করে, যেগুলি ব্যবহারকারীর ইনপুট গ্রহণ করতে এবং ডেটা প্রদর্শন করতে ব্যবহৃত হয়।
Control-এর কিছু সাধারণ বৈশিষ্ট্য:
- Interactive: Control কম্পোনেন্টগুলি ব্যবহারকারীর সাথে ইন্টারঅ্যাকশন করতে সক্ষম, যেমন ক্লিক, টাইপ, নির্বাচন ইত্যাদি।
- CSS Styling: এগুলিতে CSS এর মাধ্যমে স্টাইলিং করা যায়।
- Event Handling: Control কম্পোনেন্টে ইভেন্ট হ্যান্ডলার যোগ করা যায় (যেমন, ক্লিক ইভেন্ট, টাইপ ইভেন্ট ইত্যাদি)।
Control ক্লাসের কিছু সাধারণ সাবক্লাস:
- Button: ক্লিকযোগ্য বোতাম।
- TextField: পাঠ্য ইনপুট নেওয়ার জন্য একটি ক্ষেত্র।
- Label: টেক্সট প্রদর্শনের জন্য।
- Slider: মান নির্বাচন করার জন্য একটি স্লাইডার।
- ComboBox: একটি ড্রপডাউন তালিকা।
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ControlExample extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Click Me");
btn.setOnAction(e -> System.out.println("Button clicked"));
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Control Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Summary of Concepts:
- Node: JavaFX-এর সমস্ত গ্রাফিক্যাল উপাদানগুলির মূল ক্লাস। এটি হল UI উপাদানের সবচেয়ে মৌলিক ইউনিট। উদাহরণস্বরূপ, Shape, Text, ImageView এগুলি Node এর উদাহরণ।
- Parent:
Nodeএর একটি বিশেষ ধরনের ক্লাস, যা অন্যান্য Node ধারণ করতে পারে। এটি সাধারণত Layouts (যেমন: StackPane, HBox, VBox) এর জন্য ব্যবহৃত হয়। - Control: JavaFX এর UI Controls যেমন Button, TextField, ComboBox ইত্যাদি, যা ব্যবহারকারীর ইনপুট গ্রহণ করতে এবং আউটপুট প্রদর্শন করতে ব্যবহৃত হয়।
এগুলি হল JavaFX এর তিনটি প্রধান ধারণা, যা UI অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। Node, Parent, এবং Control-এর মাধ্যমে আপনি গ্রাফিক্যাল এবং ইন্টারঅ্যাকটিভ JavaFX অ্যাপ্লিকেশন তৈরি করতে পারেন।
Read more